package model.archivo;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;


public class ArchivoTexto extends Archivo{
	//invoca al creador de Archivo
	public ArchivoTexto(String xRutaArchivo) throws FileNotFoundException{
		super(xRutaArchivo);
	}
	
	//Devuelve una linea del archivo 
	public String getLine() throws IOException {		
		ByteArrayOutputStream lineaLeida = new ByteArrayOutputStream();
		int c = -1;
		boolean eol = false;

		while (!eol) {
			switch (c = aArchivo.read()) {
				case -1:
				case '\n':
					eol = true;
					break;
				case '\r':
					eol = true;
					long cur = aArchivo.getFilePointer();
					if ((aArchivo.read()) != '\n') aArchivo.seek(cur);
					break;
				default:
					lineaLeida.write(c);
					break;
			}
		}

		if ((c == -1) && (lineaLeida.size() == 0))
			return null;
	    
		return lineaLeida.toString();
	}
	//Devuelve todo el archivo de texto
	public String getTodo() throws IOException{
		String lineaAuxiliar=this.getLine();
		String texto=lineaAuxiliar;
		
		/*verifica el fin de archivo y obtiene y guarda una pila por linea*/		
		while (lineaAuxiliar!=null){ 
			lineaAuxiliar=this.getLine();
			if (lineaAuxiliar!=null)
				texto=texto+"\n"+lineaAuxiliar;
		}
		return texto;
	}

}
